package tools.jackson.module.kotlin.kogeraIntegration.deser.valueClass.parameterSize.twoUnitPrimitive

import com.fasterxml.jackson.annotation.JsonCreator
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.Test
import tools.jackson.module.kotlin.assertReflectEquals
import tools.jackson.module.kotlin.defaultMapper
import tools.jackson.module.kotlin.kogeraIntegration.deser.valueClass.TwoUnitPrimitive
import tools.jackson.module.kotlin.readValue

/**
 * Up to argument size 32 there is one mask argument for the default argument,
 * 33 ~ 64 there are two, and 65 there are three, so each boundary value is tested.
 * Also, the maximum argument size that can be set in the constructor is 124, so that case is tested as well.
 */
class DeserializeByFactoryWithDefaultArgumentsTest {
    data class Dst32(
        val p00: TwoUnitPrimitive,
        val p01: TwoUnitPrimitive,
        val p02: TwoUnitPrimitive,
        val p03: TwoUnitPrimitive,
        val p04: TwoUnitPrimitive,
        val p05: TwoUnitPrimitive,
        val p06: TwoUnitPrimitive,
        val p07: TwoUnitPrimitive,
        val p08: TwoUnitPrimitive,
        val p09: TwoUnitPrimitive,
        val p10: TwoUnitPrimitive,
        val p11: TwoUnitPrimitive,
        val p12: TwoUnitPrimitive,
        val p13: TwoUnitPrimitive,
        val p14: TwoUnitPrimitive,
        val p15: TwoUnitPrimitive,
        val p16: TwoUnitPrimitive,
        val p17: TwoUnitPrimitive,
        val p18: TwoUnitPrimitive,
        val p19: TwoUnitPrimitive,
        val p20: TwoUnitPrimitive,
        val p21: TwoUnitPrimitive,
        val p22: TwoUnitPrimitive,
        val p23: TwoUnitPrimitive,
        val p24: TwoUnitPrimitive,
        val p25: TwoUnitPrimitive,
        val p26: TwoUnitPrimitive,
        val p27: TwoUnitPrimitive,
        val p28: TwoUnitPrimitive,
        val p29: TwoUnitPrimitive,
        val p30: TwoUnitPrimitive,
        val p31: TwoUnitPrimitive
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q00: TwoUnitPrimitive = TwoUnitPrimitive(0),
                q01: TwoUnitPrimitive = TwoUnitPrimitive(1),
                q02: TwoUnitPrimitive = TwoUnitPrimitive(2),
                q03: TwoUnitPrimitive = TwoUnitPrimitive(3),
                q04: TwoUnitPrimitive = TwoUnitPrimitive(4),
                q05: TwoUnitPrimitive = TwoUnitPrimitive(5),
                q06: TwoUnitPrimitive = TwoUnitPrimitive(6),
                q07: TwoUnitPrimitive = TwoUnitPrimitive(7),
                q08: TwoUnitPrimitive = TwoUnitPrimitive(8),
                q09: TwoUnitPrimitive = TwoUnitPrimitive(9),
                q10: TwoUnitPrimitive = TwoUnitPrimitive(10),
                q11: TwoUnitPrimitive = TwoUnitPrimitive(11),
                q12: TwoUnitPrimitive = TwoUnitPrimitive(12),
                q13: TwoUnitPrimitive = TwoUnitPrimitive(13),
                q14: TwoUnitPrimitive = TwoUnitPrimitive(14),
                q15: TwoUnitPrimitive = TwoUnitPrimitive(15),
                q16: TwoUnitPrimitive = TwoUnitPrimitive(16),
                q17: TwoUnitPrimitive = TwoUnitPrimitive(17),
                q18: TwoUnitPrimitive = TwoUnitPrimitive(18),
                q19: TwoUnitPrimitive = TwoUnitPrimitive(19),
                q20: TwoUnitPrimitive = TwoUnitPrimitive(20),
                q21: TwoUnitPrimitive = TwoUnitPrimitive(21),
                q22: TwoUnitPrimitive = TwoUnitPrimitive(22),
                q23: TwoUnitPrimitive = TwoUnitPrimitive(23),
                q24: TwoUnitPrimitive = TwoUnitPrimitive(24),
                q25: TwoUnitPrimitive = TwoUnitPrimitive(25),
                q26: TwoUnitPrimitive = TwoUnitPrimitive(26),
                q27: TwoUnitPrimitive = TwoUnitPrimitive(27),
                q28: TwoUnitPrimitive = TwoUnitPrimitive(28),
                q29: TwoUnitPrimitive = TwoUnitPrimitive(29),
                q30: TwoUnitPrimitive = TwoUnitPrimitive(30),
                q31: TwoUnitPrimitive = TwoUnitPrimitive(31)
            ) = Dst32(
                q00,
                q01,
                q02,
                q03,
                q04,
                q05,
                q06,
                q07,
                q08,
                q09,
                q10,
                q11,
                q12,
                q13,
                q14,
                q15,
                q16,
                q17,
                q18,
                q19,
                q20,
                q21,
                q22,
                q23,
                q24,
                q25,
                q26,
                q27,
                q28,
                q29,
                q30,
                q31
            )
        }
    }

    @Test
    fun test32() {
        Assertions.assertEquals(Dst32.creator(), defaultMapper.readValue<Dst32>("{}"))
    }

    data class Dst33(
        val p00: TwoUnitPrimitive,
        val p01: TwoUnitPrimitive,
        val p02: TwoUnitPrimitive,
        val p03: TwoUnitPrimitive,
        val p04: TwoUnitPrimitive,
        val p05: TwoUnitPrimitive,
        val p06: TwoUnitPrimitive,
        val p07: TwoUnitPrimitive,
        val p08: TwoUnitPrimitive,
        val p09: TwoUnitPrimitive,
        val p10: TwoUnitPrimitive,
        val p11: TwoUnitPrimitive,
        val p12: TwoUnitPrimitive,
        val p13: TwoUnitPrimitive,
        val p14: TwoUnitPrimitive,
        val p15: TwoUnitPrimitive,
        val p16: TwoUnitPrimitive,
        val p17: TwoUnitPrimitive,
        val p18: TwoUnitPrimitive,
        val p19: TwoUnitPrimitive,
        val p20: TwoUnitPrimitive,
        val p21: TwoUnitPrimitive,
        val p22: TwoUnitPrimitive,
        val p23: TwoUnitPrimitive,
        val p24: TwoUnitPrimitive,
        val p25: TwoUnitPrimitive,
        val p26: TwoUnitPrimitive,
        val p27: TwoUnitPrimitive,
        val p28: TwoUnitPrimitive,
        val p29: TwoUnitPrimitive,
        val p30: TwoUnitPrimitive,
        val p31: TwoUnitPrimitive,
        val p32: TwoUnitPrimitive
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q00: TwoUnitPrimitive = TwoUnitPrimitive(0),
                q01: TwoUnitPrimitive = TwoUnitPrimitive(1),
                q02: TwoUnitPrimitive = TwoUnitPrimitive(2),
                q03: TwoUnitPrimitive = TwoUnitPrimitive(3),
                q04: TwoUnitPrimitive = TwoUnitPrimitive(4),
                q05: TwoUnitPrimitive = TwoUnitPrimitive(5),
                q06: TwoUnitPrimitive = TwoUnitPrimitive(6),
                q07: TwoUnitPrimitive = TwoUnitPrimitive(7),
                q08: TwoUnitPrimitive = TwoUnitPrimitive(8),
                q09: TwoUnitPrimitive = TwoUnitPrimitive(9),
                q10: TwoUnitPrimitive = TwoUnitPrimitive(10),
                q11: TwoUnitPrimitive = TwoUnitPrimitive(11),
                q12: TwoUnitPrimitive = TwoUnitPrimitive(12),
                q13: TwoUnitPrimitive = TwoUnitPrimitive(13),
                q14: TwoUnitPrimitive = TwoUnitPrimitive(14),
                q15: TwoUnitPrimitive = TwoUnitPrimitive(15),
                q16: TwoUnitPrimitive = TwoUnitPrimitive(16),
                q17: TwoUnitPrimitive = TwoUnitPrimitive(17),
                q18: TwoUnitPrimitive = TwoUnitPrimitive(18),
                q19: TwoUnitPrimitive = TwoUnitPrimitive(19),
                q20: TwoUnitPrimitive = TwoUnitPrimitive(20),
                q21: TwoUnitPrimitive = TwoUnitPrimitive(21),
                q22: TwoUnitPrimitive = TwoUnitPrimitive(22),
                q23: TwoUnitPrimitive = TwoUnitPrimitive(23),
                q24: TwoUnitPrimitive = TwoUnitPrimitive(24),
                q25: TwoUnitPrimitive = TwoUnitPrimitive(25),
                q26: TwoUnitPrimitive = TwoUnitPrimitive(26),
                q27: TwoUnitPrimitive = TwoUnitPrimitive(27),
                q28: TwoUnitPrimitive = TwoUnitPrimitive(28),
                q29: TwoUnitPrimitive = TwoUnitPrimitive(29),
                q30: TwoUnitPrimitive = TwoUnitPrimitive(30),
                q31: TwoUnitPrimitive = TwoUnitPrimitive(31),
                q32: TwoUnitPrimitive = TwoUnitPrimitive(32)
            ) = Dst33(
                q00,
                q01,
                q02,
                q03,
                q04,
                q05,
                q06,
                q07,
                q08,
                q09,
                q10,
                q11,
                q12,
                q13,
                q14,
                q15,
                q16,
                q17,
                q18,
                q19,
                q20,
                q21,
                q22,
                q23,
                q24,
                q25,
                q26,
                q27,
                q28,
                q29,
                q30,
                q31,
                q32
            )
        }
    }

    @Test
    fun test33() {
        Assertions.assertEquals(Dst33.creator(), defaultMapper.readValue<Dst33>("{}"))
    }

    data class Dst64(
        val p00: TwoUnitPrimitive,
        val p01: TwoUnitPrimitive,
        val p02: TwoUnitPrimitive,
        val p03: TwoUnitPrimitive,
        val p04: TwoUnitPrimitive,
        val p05: TwoUnitPrimitive,
        val p06: TwoUnitPrimitive,
        val p07: TwoUnitPrimitive,
        val p08: TwoUnitPrimitive,
        val p09: TwoUnitPrimitive,
        val p10: TwoUnitPrimitive,
        val p11: TwoUnitPrimitive,
        val p12: TwoUnitPrimitive,
        val p13: TwoUnitPrimitive,
        val p14: TwoUnitPrimitive,
        val p15: TwoUnitPrimitive,
        val p16: TwoUnitPrimitive,
        val p17: TwoUnitPrimitive,
        val p18: TwoUnitPrimitive,
        val p19: TwoUnitPrimitive,
        val p20: TwoUnitPrimitive,
        val p21: TwoUnitPrimitive,
        val p22: TwoUnitPrimitive,
        val p23: TwoUnitPrimitive,
        val p24: TwoUnitPrimitive,
        val p25: TwoUnitPrimitive,
        val p26: TwoUnitPrimitive,
        val p27: TwoUnitPrimitive,
        val p28: TwoUnitPrimitive,
        val p29: TwoUnitPrimitive,
        val p30: TwoUnitPrimitive,
        val p31: TwoUnitPrimitive,
        val p32: TwoUnitPrimitive,
        val p33: TwoUnitPrimitive,
        val p34: TwoUnitPrimitive,
        val p35: TwoUnitPrimitive,
        val p36: TwoUnitPrimitive,
        val p37: TwoUnitPrimitive,
        val p38: TwoUnitPrimitive,
        val p39: TwoUnitPrimitive,
        val p40: TwoUnitPrimitive,
        val p41: TwoUnitPrimitive,
        val p42: TwoUnitPrimitive,
        val p43: TwoUnitPrimitive,
        val p44: TwoUnitPrimitive,
        val p45: TwoUnitPrimitive,
        val p46: TwoUnitPrimitive,
        val p47: TwoUnitPrimitive,
        val p48: TwoUnitPrimitive,
        val p49: TwoUnitPrimitive,
        val p50: TwoUnitPrimitive,
        val p51: TwoUnitPrimitive,
        val p52: TwoUnitPrimitive,
        val p53: TwoUnitPrimitive,
        val p54: TwoUnitPrimitive,
        val p55: TwoUnitPrimitive,
        val p56: TwoUnitPrimitive,
        val p57: TwoUnitPrimitive,
        val p58: TwoUnitPrimitive,
        val p59: TwoUnitPrimitive,
        val p60: TwoUnitPrimitive,
        val p61: TwoUnitPrimitive,
        val p62: TwoUnitPrimitive,
        val p63: TwoUnitPrimitive
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q00: TwoUnitPrimitive = TwoUnitPrimitive(0),
                q01: TwoUnitPrimitive = TwoUnitPrimitive(1),
                q02: TwoUnitPrimitive = TwoUnitPrimitive(2),
                q03: TwoUnitPrimitive = TwoUnitPrimitive(3),
                q04: TwoUnitPrimitive = TwoUnitPrimitive(4),
                q05: TwoUnitPrimitive = TwoUnitPrimitive(5),
                q06: TwoUnitPrimitive = TwoUnitPrimitive(6),
                q07: TwoUnitPrimitive = TwoUnitPrimitive(7),
                q08: TwoUnitPrimitive = TwoUnitPrimitive(8),
                q09: TwoUnitPrimitive = TwoUnitPrimitive(9),
                q10: TwoUnitPrimitive = TwoUnitPrimitive(10),
                q11: TwoUnitPrimitive = TwoUnitPrimitive(11),
                q12: TwoUnitPrimitive = TwoUnitPrimitive(12),
                q13: TwoUnitPrimitive = TwoUnitPrimitive(13),
                q14: TwoUnitPrimitive = TwoUnitPrimitive(14),
                q15: TwoUnitPrimitive = TwoUnitPrimitive(15),
                q16: TwoUnitPrimitive = TwoUnitPrimitive(16),
                q17: TwoUnitPrimitive = TwoUnitPrimitive(17),
                q18: TwoUnitPrimitive = TwoUnitPrimitive(18),
                q19: TwoUnitPrimitive = TwoUnitPrimitive(19),
                q20: TwoUnitPrimitive = TwoUnitPrimitive(20),
                q21: TwoUnitPrimitive = TwoUnitPrimitive(21),
                q22: TwoUnitPrimitive = TwoUnitPrimitive(22),
                q23: TwoUnitPrimitive = TwoUnitPrimitive(23),
                q24: TwoUnitPrimitive = TwoUnitPrimitive(24),
                q25: TwoUnitPrimitive = TwoUnitPrimitive(25),
                q26: TwoUnitPrimitive = TwoUnitPrimitive(26),
                q27: TwoUnitPrimitive = TwoUnitPrimitive(27),
                q28: TwoUnitPrimitive = TwoUnitPrimitive(28),
                q29: TwoUnitPrimitive = TwoUnitPrimitive(29),
                q30: TwoUnitPrimitive = TwoUnitPrimitive(30),
                q31: TwoUnitPrimitive = TwoUnitPrimitive(31),
                q32: TwoUnitPrimitive = TwoUnitPrimitive(32),
                q33: TwoUnitPrimitive = TwoUnitPrimitive(33),
                q34: TwoUnitPrimitive = TwoUnitPrimitive(34),
                q35: TwoUnitPrimitive = TwoUnitPrimitive(35),
                q36: TwoUnitPrimitive = TwoUnitPrimitive(36),
                q37: TwoUnitPrimitive = TwoUnitPrimitive(37),
                q38: TwoUnitPrimitive = TwoUnitPrimitive(38),
                q39: TwoUnitPrimitive = TwoUnitPrimitive(39),
                q40: TwoUnitPrimitive = TwoUnitPrimitive(40),
                q41: TwoUnitPrimitive = TwoUnitPrimitive(41),
                q42: TwoUnitPrimitive = TwoUnitPrimitive(42),
                q43: TwoUnitPrimitive = TwoUnitPrimitive(43),
                q44: TwoUnitPrimitive = TwoUnitPrimitive(44),
                q45: TwoUnitPrimitive = TwoUnitPrimitive(45),
                q46: TwoUnitPrimitive = TwoUnitPrimitive(46),
                q47: TwoUnitPrimitive = TwoUnitPrimitive(47),
                q48: TwoUnitPrimitive = TwoUnitPrimitive(48),
                q49: TwoUnitPrimitive = TwoUnitPrimitive(49),
                q50: TwoUnitPrimitive = TwoUnitPrimitive(50),
                q51: TwoUnitPrimitive = TwoUnitPrimitive(51),
                q52: TwoUnitPrimitive = TwoUnitPrimitive(52),
                q53: TwoUnitPrimitive = TwoUnitPrimitive(53),
                q54: TwoUnitPrimitive = TwoUnitPrimitive(54),
                q55: TwoUnitPrimitive = TwoUnitPrimitive(55),
                q56: TwoUnitPrimitive = TwoUnitPrimitive(56),
                q57: TwoUnitPrimitive = TwoUnitPrimitive(57),
                q58: TwoUnitPrimitive = TwoUnitPrimitive(58),
                q59: TwoUnitPrimitive = TwoUnitPrimitive(59),
                q60: TwoUnitPrimitive = TwoUnitPrimitive(60),
                q61: TwoUnitPrimitive = TwoUnitPrimitive(61),
                q62: TwoUnitPrimitive = TwoUnitPrimitive(62),
                q63: TwoUnitPrimitive = TwoUnitPrimitive(63)
            ) = Dst64(
                q00,
                q01,
                q02,
                q03,
                q04,
                q05,
                q06,
                q07,
                q08,
                q09,
                q10,
                q11,
                q12,
                q13,
                q14,
                q15,
                q16,
                q17,
                q18,
                q19,
                q20,
                q21,
                q22,
                q23,
                q24,
                q25,
                q26,
                q27,
                q28,
                q29,
                q30,
                q31,
                q32,
                q33,
                q34,
                q35,
                q36,
                q37,
                q38,
                q39,
                q40,
                q41,
                q42,
                q43,
                q44,
                q45,
                q46,
                q47,
                q48,
                q49,
                q50,
                q51,
                q52,
                q53,
                q54,
                q55,
                q56,
                q57,
                q58,
                q59,
                q60,
                q61,
                q62,
                q63
            )
        }
    }

    @Test
    fun test64() {
        Assertions.assertEquals(Dst64.creator(), defaultMapper.readValue<Dst64>("{}"))
    }

    data class Dst65(
        val p00: TwoUnitPrimitive,
        val p01: TwoUnitPrimitive,
        val p02: TwoUnitPrimitive,
        val p03: TwoUnitPrimitive,
        val p04: TwoUnitPrimitive,
        val p05: TwoUnitPrimitive,
        val p06: TwoUnitPrimitive,
        val p07: TwoUnitPrimitive,
        val p08: TwoUnitPrimitive,
        val p09: TwoUnitPrimitive,
        val p10: TwoUnitPrimitive,
        val p11: TwoUnitPrimitive,
        val p12: TwoUnitPrimitive,
        val p13: TwoUnitPrimitive,
        val p14: TwoUnitPrimitive,
        val p15: TwoUnitPrimitive,
        val p16: TwoUnitPrimitive,
        val p17: TwoUnitPrimitive,
        val p18: TwoUnitPrimitive,
        val p19: TwoUnitPrimitive,
        val p20: TwoUnitPrimitive,
        val p21: TwoUnitPrimitive,
        val p22: TwoUnitPrimitive,
        val p23: TwoUnitPrimitive,
        val p24: TwoUnitPrimitive,
        val p25: TwoUnitPrimitive,
        val p26: TwoUnitPrimitive,
        val p27: TwoUnitPrimitive,
        val p28: TwoUnitPrimitive,
        val p29: TwoUnitPrimitive,
        val p30: TwoUnitPrimitive,
        val p31: TwoUnitPrimitive,
        val p32: TwoUnitPrimitive,
        val p33: TwoUnitPrimitive,
        val p34: TwoUnitPrimitive,
        val p35: TwoUnitPrimitive,
        val p36: TwoUnitPrimitive,
        val p37: TwoUnitPrimitive,
        val p38: TwoUnitPrimitive,
        val p39: TwoUnitPrimitive,
        val p40: TwoUnitPrimitive,
        val p41: TwoUnitPrimitive,
        val p42: TwoUnitPrimitive,
        val p43: TwoUnitPrimitive,
        val p44: TwoUnitPrimitive,
        val p45: TwoUnitPrimitive,
        val p46: TwoUnitPrimitive,
        val p47: TwoUnitPrimitive,
        val p48: TwoUnitPrimitive,
        val p49: TwoUnitPrimitive,
        val p50: TwoUnitPrimitive,
        val p51: TwoUnitPrimitive,
        val p52: TwoUnitPrimitive,
        val p53: TwoUnitPrimitive,
        val p54: TwoUnitPrimitive,
        val p55: TwoUnitPrimitive,
        val p56: TwoUnitPrimitive,
        val p57: TwoUnitPrimitive,
        val p58: TwoUnitPrimitive,
        val p59: TwoUnitPrimitive,
        val p60: TwoUnitPrimitive,
        val p61: TwoUnitPrimitive,
        val p62: TwoUnitPrimitive,
        val p63: TwoUnitPrimitive,
        val p64: TwoUnitPrimitive
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q00: TwoUnitPrimitive = TwoUnitPrimitive(0),
                q01: TwoUnitPrimitive = TwoUnitPrimitive(1),
                q02: TwoUnitPrimitive = TwoUnitPrimitive(2),
                q03: TwoUnitPrimitive = TwoUnitPrimitive(3),
                q04: TwoUnitPrimitive = TwoUnitPrimitive(4),
                q05: TwoUnitPrimitive = TwoUnitPrimitive(5),
                q06: TwoUnitPrimitive = TwoUnitPrimitive(6),
                q07: TwoUnitPrimitive = TwoUnitPrimitive(7),
                q08: TwoUnitPrimitive = TwoUnitPrimitive(8),
                q09: TwoUnitPrimitive = TwoUnitPrimitive(9),
                q10: TwoUnitPrimitive = TwoUnitPrimitive(10),
                q11: TwoUnitPrimitive = TwoUnitPrimitive(11),
                q12: TwoUnitPrimitive = TwoUnitPrimitive(12),
                q13: TwoUnitPrimitive = TwoUnitPrimitive(13),
                q14: TwoUnitPrimitive = TwoUnitPrimitive(14),
                q15: TwoUnitPrimitive = TwoUnitPrimitive(15),
                q16: TwoUnitPrimitive = TwoUnitPrimitive(16),
                q17: TwoUnitPrimitive = TwoUnitPrimitive(17),
                q18: TwoUnitPrimitive = TwoUnitPrimitive(18),
                q19: TwoUnitPrimitive = TwoUnitPrimitive(19),
                q20: TwoUnitPrimitive = TwoUnitPrimitive(20),
                q21: TwoUnitPrimitive = TwoUnitPrimitive(21),
                q22: TwoUnitPrimitive = TwoUnitPrimitive(22),
                q23: TwoUnitPrimitive = TwoUnitPrimitive(23),
                q24: TwoUnitPrimitive = TwoUnitPrimitive(24),
                q25: TwoUnitPrimitive = TwoUnitPrimitive(25),
                q26: TwoUnitPrimitive = TwoUnitPrimitive(26),
                q27: TwoUnitPrimitive = TwoUnitPrimitive(27),
                q28: TwoUnitPrimitive = TwoUnitPrimitive(28),
                q29: TwoUnitPrimitive = TwoUnitPrimitive(29),
                q30: TwoUnitPrimitive = TwoUnitPrimitive(30),
                q31: TwoUnitPrimitive = TwoUnitPrimitive(31),
                q32: TwoUnitPrimitive = TwoUnitPrimitive(32),
                q33: TwoUnitPrimitive = TwoUnitPrimitive(33),
                q34: TwoUnitPrimitive = TwoUnitPrimitive(34),
                q35: TwoUnitPrimitive = TwoUnitPrimitive(35),
                q36: TwoUnitPrimitive = TwoUnitPrimitive(36),
                q37: TwoUnitPrimitive = TwoUnitPrimitive(37),
                q38: TwoUnitPrimitive = TwoUnitPrimitive(38),
                q39: TwoUnitPrimitive = TwoUnitPrimitive(39),
                q40: TwoUnitPrimitive = TwoUnitPrimitive(40),
                q41: TwoUnitPrimitive = TwoUnitPrimitive(41),
                q42: TwoUnitPrimitive = TwoUnitPrimitive(42),
                q43: TwoUnitPrimitive = TwoUnitPrimitive(43),
                q44: TwoUnitPrimitive = TwoUnitPrimitive(44),
                q45: TwoUnitPrimitive = TwoUnitPrimitive(45),
                q46: TwoUnitPrimitive = TwoUnitPrimitive(46),
                q47: TwoUnitPrimitive = TwoUnitPrimitive(47),
                q48: TwoUnitPrimitive = TwoUnitPrimitive(48),
                q49: TwoUnitPrimitive = TwoUnitPrimitive(49),
                q50: TwoUnitPrimitive = TwoUnitPrimitive(50),
                q51: TwoUnitPrimitive = TwoUnitPrimitive(51),
                q52: TwoUnitPrimitive = TwoUnitPrimitive(52),
                q53: TwoUnitPrimitive = TwoUnitPrimitive(53),
                q54: TwoUnitPrimitive = TwoUnitPrimitive(54),
                q55: TwoUnitPrimitive = TwoUnitPrimitive(55),
                q56: TwoUnitPrimitive = TwoUnitPrimitive(56),
                q57: TwoUnitPrimitive = TwoUnitPrimitive(57),
                q58: TwoUnitPrimitive = TwoUnitPrimitive(58),
                q59: TwoUnitPrimitive = TwoUnitPrimitive(59),
                q60: TwoUnitPrimitive = TwoUnitPrimitive(60),
                q61: TwoUnitPrimitive = TwoUnitPrimitive(61),
                q62: TwoUnitPrimitive = TwoUnitPrimitive(62),
                q63: TwoUnitPrimitive = TwoUnitPrimitive(63),
                q64: TwoUnitPrimitive = TwoUnitPrimitive(64)
            ) = Dst65(
                q00,
                q01,
                q02,
                q03,
                q04,
                q05,
                q06,
                q07,
                q08,
                q09,
                q10,
                q11,
                q12,
                q13,
                q14,
                q15,
                q16,
                q17,
                q18,
                q19,
                q20,
                q21,
                q22,
                q23,
                q24,
                q25,
                q26,
                q27,
                q28,
                q29,
                q30,
                q31,
                q32,
                q33,
                q34,
                q35,
                q36,
                q37,
                q38,
                q39,
                q40,
                q41,
                q42,
                q43,
                q44,
                q45,
                q46,
                q47,
                q48,
                q49,
                q50,
                q51,
                q52,
                q53,
                q54,
                q55,
                q56,
                q57,
                q58,
                q59,
                q60,
                q61,
                q62,
                q63,
                q64
            )
        }
    }

    @Test
    fun test65() {
        Assertions.assertEquals(Dst65.creator(), defaultMapper.readValue<Dst65>("{}"))
    }

    // It cannot be a data class because the generated method would exceed the argument size limit.
    class DstMax(
        val p000: TwoUnitPrimitive,
        val p001: TwoUnitPrimitive,
        val p002: TwoUnitPrimitive,
        val p003: TwoUnitPrimitive,
        val p004: TwoUnitPrimitive,
        val p005: TwoUnitPrimitive,
        val p006: TwoUnitPrimitive,
        val p007: TwoUnitPrimitive,
        val p008: TwoUnitPrimitive,
        val p009: TwoUnitPrimitive,
        val p010: TwoUnitPrimitive,
        val p011: TwoUnitPrimitive,
        val p012: TwoUnitPrimitive,
        val p013: TwoUnitPrimitive,
        val p014: TwoUnitPrimitive,
        val p015: TwoUnitPrimitive,
        val p016: TwoUnitPrimitive,
        val p017: TwoUnitPrimitive,
        val p018: TwoUnitPrimitive,
        val p019: TwoUnitPrimitive,
        val p020: TwoUnitPrimitive,
        val p021: TwoUnitPrimitive,
        val p022: TwoUnitPrimitive,
        val p023: TwoUnitPrimitive,
        val p024: TwoUnitPrimitive,
        val p025: TwoUnitPrimitive,
        val p026: TwoUnitPrimitive,
        val p027: TwoUnitPrimitive,
        val p028: TwoUnitPrimitive,
        val p029: TwoUnitPrimitive,
        val p030: TwoUnitPrimitive,
        val p031: TwoUnitPrimitive,
        val p032: TwoUnitPrimitive,
        val p033: TwoUnitPrimitive,
        val p034: TwoUnitPrimitive,
        val p035: TwoUnitPrimitive,
        val p036: TwoUnitPrimitive,
        val p037: TwoUnitPrimitive,
        val p038: TwoUnitPrimitive,
        val p039: TwoUnitPrimitive,
        val p040: TwoUnitPrimitive,
        val p041: TwoUnitPrimitive,
        val p042: TwoUnitPrimitive,
        val p043: TwoUnitPrimitive,
        val p044: TwoUnitPrimitive,
        val p045: TwoUnitPrimitive,
        val p046: TwoUnitPrimitive,
        val p047: TwoUnitPrimitive,
        val p048: TwoUnitPrimitive,
        val p049: TwoUnitPrimitive,
        val p050: TwoUnitPrimitive,
        val p051: TwoUnitPrimitive,
        val p052: TwoUnitPrimitive,
        val p053: TwoUnitPrimitive,
        val p054: TwoUnitPrimitive,
        val p055: TwoUnitPrimitive,
        val p056: TwoUnitPrimitive,
        val p057: TwoUnitPrimitive,
        val p058: TwoUnitPrimitive,
        val p059: TwoUnitPrimitive,
        val p060: TwoUnitPrimitive,
        val p061: TwoUnitPrimitive,
        val p062: TwoUnitPrimitive,
        val p063: TwoUnitPrimitive,
        val p064: TwoUnitPrimitive,
        val p065: TwoUnitPrimitive,
        val p066: TwoUnitPrimitive,
        val p067: TwoUnitPrimitive,
        val p068: TwoUnitPrimitive,
        val p069: TwoUnitPrimitive,
        val p070: TwoUnitPrimitive,
        val p071: TwoUnitPrimitive,
        val p072: TwoUnitPrimitive,
        val p073: TwoUnitPrimitive,
        val p074: TwoUnitPrimitive,
        val p075: TwoUnitPrimitive,
        val p076: TwoUnitPrimitive,
        val p077: TwoUnitPrimitive,
        val p078: TwoUnitPrimitive,
        val p079: TwoUnitPrimitive,
        val p080: TwoUnitPrimitive,
        val p081: TwoUnitPrimitive,
        val p082: TwoUnitPrimitive,
        val p083: TwoUnitPrimitive,
        val p084: TwoUnitPrimitive,
        val p085: TwoUnitPrimitive,
        val p086: TwoUnitPrimitive,
        val p087: TwoUnitPrimitive,
        val p088: TwoUnitPrimitive,
        val p089: TwoUnitPrimitive,
        val p090: TwoUnitPrimitive,
        val p091: TwoUnitPrimitive,
        val p092: TwoUnitPrimitive,
        val p093: TwoUnitPrimitive,
        val p094: TwoUnitPrimitive,
        val p095: TwoUnitPrimitive,
        val p096: TwoUnitPrimitive,
        val p097: TwoUnitPrimitive,
        val p098: TwoUnitPrimitive,
        val p099: TwoUnitPrimitive,
        val p100: TwoUnitPrimitive,
        val p101: TwoUnitPrimitive,
        val p102: TwoUnitPrimitive,
        val p103: TwoUnitPrimitive,
        val p104: TwoUnitPrimitive,
        val p105: TwoUnitPrimitive,
        val p106: TwoUnitPrimitive,
        val p107: TwoUnitPrimitive,
        val p108: TwoUnitPrimitive,
        val p109: TwoUnitPrimitive,
        val p110: TwoUnitPrimitive,
        val p111: TwoUnitPrimitive,
        val p112: TwoUnitPrimitive,
        val p113: TwoUnitPrimitive,
        val p114: TwoUnitPrimitive,
        val p115: TwoUnitPrimitive,
        val p116: TwoUnitPrimitive,
        val p117: TwoUnitPrimitive,
        val p118: TwoUnitPrimitive,
        val p119: TwoUnitPrimitive,
        val p120: TwoUnitPrimitive,
        val p121: TwoUnitPrimitive,
        val p122: TwoUnitPrimitive,
        val p123: TwoUnitPrimitive
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q000: TwoUnitPrimitive = TwoUnitPrimitive(0),
                q001: TwoUnitPrimitive = TwoUnitPrimitive(1),
                q002: TwoUnitPrimitive = TwoUnitPrimitive(2),
                q003: TwoUnitPrimitive = TwoUnitPrimitive(3),
                q004: TwoUnitPrimitive = TwoUnitPrimitive(4),
                q005: TwoUnitPrimitive = TwoUnitPrimitive(5),
                q006: TwoUnitPrimitive = TwoUnitPrimitive(6),
                q007: TwoUnitPrimitive = TwoUnitPrimitive(7),
                q008: TwoUnitPrimitive = TwoUnitPrimitive(8),
                q009: TwoUnitPrimitive = TwoUnitPrimitive(9),
                q010: TwoUnitPrimitive = TwoUnitPrimitive(10),
                q011: TwoUnitPrimitive = TwoUnitPrimitive(11),
                q012: TwoUnitPrimitive = TwoUnitPrimitive(12),
                q013: TwoUnitPrimitive = TwoUnitPrimitive(13),
                q014: TwoUnitPrimitive = TwoUnitPrimitive(14),
                q015: TwoUnitPrimitive = TwoUnitPrimitive(15),
                q016: TwoUnitPrimitive = TwoUnitPrimitive(16),
                q017: TwoUnitPrimitive = TwoUnitPrimitive(17),
                q018: TwoUnitPrimitive = TwoUnitPrimitive(18),
                q019: TwoUnitPrimitive = TwoUnitPrimitive(19),
                q020: TwoUnitPrimitive = TwoUnitPrimitive(20),
                q021: TwoUnitPrimitive = TwoUnitPrimitive(21),
                q022: TwoUnitPrimitive = TwoUnitPrimitive(22),
                q023: TwoUnitPrimitive = TwoUnitPrimitive(23),
                q024: TwoUnitPrimitive = TwoUnitPrimitive(24),
                q025: TwoUnitPrimitive = TwoUnitPrimitive(25),
                q026: TwoUnitPrimitive = TwoUnitPrimitive(26),
                q027: TwoUnitPrimitive = TwoUnitPrimitive(27),
                q028: TwoUnitPrimitive = TwoUnitPrimitive(28),
                q029: TwoUnitPrimitive = TwoUnitPrimitive(29),
                q030: TwoUnitPrimitive = TwoUnitPrimitive(30),
                q031: TwoUnitPrimitive = TwoUnitPrimitive(31),
                q032: TwoUnitPrimitive = TwoUnitPrimitive(32),
                q033: TwoUnitPrimitive = TwoUnitPrimitive(33),
                q034: TwoUnitPrimitive = TwoUnitPrimitive(34),
                q035: TwoUnitPrimitive = TwoUnitPrimitive(35),
                q036: TwoUnitPrimitive = TwoUnitPrimitive(36),
                q037: TwoUnitPrimitive = TwoUnitPrimitive(37),
                q038: TwoUnitPrimitive = TwoUnitPrimitive(38),
                q039: TwoUnitPrimitive = TwoUnitPrimitive(39),
                q040: TwoUnitPrimitive = TwoUnitPrimitive(40),
                q041: TwoUnitPrimitive = TwoUnitPrimitive(41),
                q042: TwoUnitPrimitive = TwoUnitPrimitive(42),
                q043: TwoUnitPrimitive = TwoUnitPrimitive(43),
                q044: TwoUnitPrimitive = TwoUnitPrimitive(44),
                q045: TwoUnitPrimitive = TwoUnitPrimitive(45),
                q046: TwoUnitPrimitive = TwoUnitPrimitive(46),
                q047: TwoUnitPrimitive = TwoUnitPrimitive(47),
                q048: TwoUnitPrimitive = TwoUnitPrimitive(48),
                q049: TwoUnitPrimitive = TwoUnitPrimitive(49),
                q050: TwoUnitPrimitive = TwoUnitPrimitive(50),
                q051: TwoUnitPrimitive = TwoUnitPrimitive(51),
                q052: TwoUnitPrimitive = TwoUnitPrimitive(52),
                q053: TwoUnitPrimitive = TwoUnitPrimitive(53),
                q054: TwoUnitPrimitive = TwoUnitPrimitive(54),
                q055: TwoUnitPrimitive = TwoUnitPrimitive(55),
                q056: TwoUnitPrimitive = TwoUnitPrimitive(56),
                q057: TwoUnitPrimitive = TwoUnitPrimitive(57),
                q058: TwoUnitPrimitive = TwoUnitPrimitive(58),
                q059: TwoUnitPrimitive = TwoUnitPrimitive(59),
                q060: TwoUnitPrimitive = TwoUnitPrimitive(60),
                q061: TwoUnitPrimitive = TwoUnitPrimitive(61),
                q062: TwoUnitPrimitive = TwoUnitPrimitive(62),
                q063: TwoUnitPrimitive = TwoUnitPrimitive(63),
                q064: TwoUnitPrimitive = TwoUnitPrimitive(64),
                q065: TwoUnitPrimitive = TwoUnitPrimitive(65),
                q066: TwoUnitPrimitive = TwoUnitPrimitive(66),
                q067: TwoUnitPrimitive = TwoUnitPrimitive(67),
                q068: TwoUnitPrimitive = TwoUnitPrimitive(68),
                q069: TwoUnitPrimitive = TwoUnitPrimitive(69),
                q070: TwoUnitPrimitive = TwoUnitPrimitive(70),
                q071: TwoUnitPrimitive = TwoUnitPrimitive(71),
                q072: TwoUnitPrimitive = TwoUnitPrimitive(72),
                q073: TwoUnitPrimitive = TwoUnitPrimitive(73),
                q074: TwoUnitPrimitive = TwoUnitPrimitive(74),
                q075: TwoUnitPrimitive = TwoUnitPrimitive(75),
                q076: TwoUnitPrimitive = TwoUnitPrimitive(76),
                q077: TwoUnitPrimitive = TwoUnitPrimitive(77),
                q078: TwoUnitPrimitive = TwoUnitPrimitive(78),
                q079: TwoUnitPrimitive = TwoUnitPrimitive(79),
                q080: TwoUnitPrimitive = TwoUnitPrimitive(80),
                q081: TwoUnitPrimitive = TwoUnitPrimitive(81),
                q082: TwoUnitPrimitive = TwoUnitPrimitive(82),
                q083: TwoUnitPrimitive = TwoUnitPrimitive(83),
                q084: TwoUnitPrimitive = TwoUnitPrimitive(84),
                q085: TwoUnitPrimitive = TwoUnitPrimitive(85),
                q086: TwoUnitPrimitive = TwoUnitPrimitive(86),
                q087: TwoUnitPrimitive = TwoUnitPrimitive(87),
                q088: TwoUnitPrimitive = TwoUnitPrimitive(88),
                q089: TwoUnitPrimitive = TwoUnitPrimitive(89),
                q090: TwoUnitPrimitive = TwoUnitPrimitive(90),
                q091: TwoUnitPrimitive = TwoUnitPrimitive(91),
                q092: TwoUnitPrimitive = TwoUnitPrimitive(92),
                q093: TwoUnitPrimitive = TwoUnitPrimitive(93),
                q094: TwoUnitPrimitive = TwoUnitPrimitive(94),
                q095: TwoUnitPrimitive = TwoUnitPrimitive(95),
                q096: TwoUnitPrimitive = TwoUnitPrimitive(96),
                q097: TwoUnitPrimitive = TwoUnitPrimitive(97),
                q098: TwoUnitPrimitive = TwoUnitPrimitive(98),
                q099: TwoUnitPrimitive = TwoUnitPrimitive(99),
                q100: TwoUnitPrimitive = TwoUnitPrimitive(100),
                q101: TwoUnitPrimitive = TwoUnitPrimitive(101),
                q102: TwoUnitPrimitive = TwoUnitPrimitive(102),
                q103: TwoUnitPrimitive = TwoUnitPrimitive(103),
                q104: TwoUnitPrimitive = TwoUnitPrimitive(104),
                q105: TwoUnitPrimitive = TwoUnitPrimitive(105),
                q106: TwoUnitPrimitive = TwoUnitPrimitive(106),
                q107: TwoUnitPrimitive = TwoUnitPrimitive(107),
                q108: TwoUnitPrimitive = TwoUnitPrimitive(108),
                q109: TwoUnitPrimitive = TwoUnitPrimitive(109),
                q110: TwoUnitPrimitive = TwoUnitPrimitive(110),
                q111: TwoUnitPrimitive = TwoUnitPrimitive(111),
                q112: TwoUnitPrimitive = TwoUnitPrimitive(112),
                q113: TwoUnitPrimitive = TwoUnitPrimitive(113),
                q114: TwoUnitPrimitive = TwoUnitPrimitive(114),
                q115: TwoUnitPrimitive = TwoUnitPrimitive(115),
                q116: TwoUnitPrimitive = TwoUnitPrimitive(116),
                q117: TwoUnitPrimitive = TwoUnitPrimitive(117),
                q118: TwoUnitPrimitive = TwoUnitPrimitive(118),
                q119: TwoUnitPrimitive = TwoUnitPrimitive(119),
                q120: TwoUnitPrimitive = TwoUnitPrimitive(120),
                q121: TwoUnitPrimitive = TwoUnitPrimitive(121),
                q122: TwoUnitPrimitive = TwoUnitPrimitive(122),
                q123: TwoUnitPrimitive = TwoUnitPrimitive(123)
            ) = DstMax(
                q000,
                q001,
                q002,
                q003,
                q004,
                q005,
                q006,
                q007,
                q008,
                q009,
                q010,
                q011,
                q012,
                q013,
                q014,
                q015,
                q016,
                q017,
                q018,
                q019,
                q020,
                q021,
                q022,
                q023,
                q024,
                q025,
                q026,
                q027,
                q028,
                q029,
                q030,
                q031,
                q032,
                q033,
                q034,
                q035,
                q036,
                q037,
                q038,
                q039,
                q040,
                q041,
                q042,
                q043,
                q044,
                q045,
                q046,
                q047,
                q048,
                q049,
                q050,
                q051,
                q052,
                q053,
                q054,
                q055,
                q056,
                q057,
                q058,
                q059,
                q060,
                q061,
                q062,
                q063,
                q064,
                q065,
                q066,
                q067,
                q068,
                q069,
                q070,
                q071,
                q072,
                q073,
                q074,
                q075,
                q076,
                q077,
                q078,
                q079,
                q080,
                q081,
                q082,
                q083,
                q084,
                q085,
                q086,
                q087,
                q088,
                q089,
                q090,
                q091,
                q092,
                q093,
                q094,
                q095,
                q096,
                q097,
                q098,
                q099,
                q100,
                q101,
                q102,
                q103,
                q104,
                q105,
                q106,
                q107,
                q108,
                q109,
                q110,
                q111,
                q112,
                q113,
                q114,
                q115,
                q116,
                q117,
                q118,
                q119,
                q120,
                q121,
                q122,
                q123
            )
        }
    }

    @Test
    fun testMax() {
        assertReflectEquals(DstMax.creator(), defaultMapper.readValue<DstMax>("{}"))
    }
}
